package com.zisu.a996.resource.beforeJDK7;

import org.junit.Test;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * @Author: 蔡翔
 * @Date: 2019/11/29 9:51
 * @Version 1.0
 *
 * JDK7之前的文件拷贝功能（资源会后）
 */
public class FileCopyTest {
    @Test
    public void copyFile(){
        /**
         * 1.创建输入/输出流
         * 2.执行文件拷贝，读取文件内容。写入另一个文件中
         * 3.** 关闭文件流资源 **
         **/
        //定义输入输出数据 (精确到文件)
        String originalURL = "E:\\work\\学习demo\\a996\\src\\main\\java\\com\\zisu\\a996\\lib\\FileCopyTest.java";
        String targetURL = "E:\\work\\学习demo\\a996\\src\\main\\java\\com\\zisu\\a996\\targetTest\\target.txt ";

        //声明文件输入流，文件输出流
        FileInputStream originalFileInputStream = null;
        FileOutputStream targetFileOutputStream = null;

        try {
            //实例化文件对象
            originalFileInputStream = new FileInputStream(originalURL);
            targetFileOutputStream = new FileOutputStream(targetURL);
            //读取字节信息
            int content;
            // 迭代 读取/写入 字节
            while ((content = originalFileInputStream.read()) != -1){
                //把读到的数据 迭代的写入targetFileOutputStream
                targetFileOutputStream.write(content);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            //关闭流资源
            if(targetFileOutputStream != null){
                try {
                    targetFileOutputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if(originalFileInputStream != null){
                try {
                    originalFileInputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
